package exercicios_threads.threads_aracaju.produtor_consumidor;
/** 
 * Aplicacao para simular o problema classico Produtor/Consumidor 
 * de comunicacao entre processos usando threads em Java
 */
public class ProdutorConsumidor {
	
	public static void main(String[] args) {
		/* Criando o Buffer Limitado */
		BufferLimitado buffer = new BufferLimitado();
		/* Quantidade de itens a serem produzidos/consumidos pelas threads */
		final int QUANT_ITENS = 10;
		/* Quantidade de threads */
		final int QUANT_THREADS = 5;
		/* Criando os grupos de threads Produtoras/Consumidoras */
		ThreadGroup threadsProdutoras   = new ThreadGroup("Produtores");
		ThreadGroup threadsConsumidoras = new ThreadGroup("Consumidores");
		/* Criando e iniciando e inserindo nos grupos as threads Produtoras */
		for (int i = 1; i <= QUANT_THREADS; i++){
			new ProdutorThread(threadsProdutoras,"Produtor_" + i,
								buffer,QUANT_ITENS).start();
		}
		/* Criando, iniciando e inserindo nos grupos as threads Consumidoras */
		for (int i = 1; i <= QUANT_THREADS; i++){
			new ConsumidorThread(threadsConsumidoras,"Consumidor_" + i,
								  buffer,QUANT_ITENS).start();
		}
	}
	
}
